package com.ykq.service.impl;

import com.ykq.dao.MenuDao;
import com.ykq.entity.Menu;
import com.ykq.service.MenuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
 * @program: keyboard
 * @description:
 * @author: 闫克起2
 * @create: 2023-07-21 15:27
 **/
@Service
public class MenuServiceImpl implements MenuService {
    @Autowired
    private MenuDao menuDao;
    public List<Menu> findByRoleId(Integer roleId) {
        //查询所有的菜单---但是没有层级关系
        List<Menu> list = menuDao.findByRoleId(roleId);
        //找到list中所有的一级菜单
        List<Menu> first=new ArrayList<Menu>();
        for(Menu m:list){
              if(m.getMpid()==0){
                  first.add(m);
              }
        }
        //查询一级菜单下的二级菜单。
        for(Menu f:first){
              //存放当前一级菜单下的二级菜单
              List<Menu> children=new ArrayList<Menu>();
              for(Menu m:list){
                   if(m.getMpid().equals(f.getMid())){
                         children.add(m);
                   }
              }
              //为f对象设置属性children
              f.setChildren(children);
        }
        return first;
    }

    public List<Integer> findByRoleId02(Integer roleId) {
        return menuDao.findByRoleId02(roleId);
    }

    public List<Menu> findAll() {
        List<Menu> list = menuDao.findAll();
        //找到list中所有的一级菜单
        List<Menu> first=new ArrayList<Menu>();
        for(Menu m:list){
            if(m.getMpid()==0){
                first.add(m);
            }
        }
        //查询一级菜单下的二级菜单。
        for(Menu f:first){
            //存放当前一级菜单下的二级菜单
            List<Menu> children=new ArrayList<Menu>();
            for(Menu m:list){
                if(m.getMpid().equals(f.getMid())){
                    children.add(m);
                }
            }
            //为f对象设置属性children
            f.setChildren(children);
        }
        return first;
    }

    public Integer fenQx(Integer roleId, Integer[] menuIds) {
        menuDao.delete(roleId);//删除该角色原有的权限
        menuDao.insert(roleId,menuIds);//为角色添加新的权限
        return 1;
    }
}

















